LadonGO免杀Win10 Defender
简介
LadonGo一款开源内网渗透扫描器框架,使用它可轻松一键探测C段、B段、A段存活主机、指纹识别、端口扫描、密码爆破、远程执行、高危漏洞检测等。3.8版本包含32个功能,高危漏洞检测MS17010、SmbGhost,远程执行SshCmd、WinrmCmd、PhpShell,12种协议密码爆破Smb/Ssh/Ftp/Mysql/Mssql/Oracle/Sqlplus/Winrm/HttpBasic/Redis/MongoDB/RouterOS,存活探测/信息收集/指纹识别NbtInfo、OnlinePC、Ping、Icmp、SnmpScan,HttpBanner、HttpTitle、TcpBanner、WeblogicScan、OxidScan,端口扫描/服务探测PortScan。
前言
有同学问我有些机器代理有问题,丢很多包,很多信息无法探测,所以只能把工具传到目标,上传前本地更新WIN10 Defender测试,发现被杀了,怎么办?这种问题也要问,肚子饿了怎么办?当然是做免杀啊,源码都有了,还要我免好给你?这么简单都不会吗?真不会啊,没关系,本文教大家注释法定位特征码、BASE64加密被杀特征免杀,同理其它程序也是一样,像几年前我发过的python版的shellcode加载器,也是使用base64、hex、base32等算法加密shellcode达到免杀的效果。加密永不过时,至少静态或查杀能力不强的杀软都能过,如CS免杀是可以上线,但是使用到mimikatz导内存密码时,可能就被defender杀了,defender说它强嘛,特征库又不全很多简单的静态的它都杀不了,说它不强嘛,它又能动态杀一些东西,关键时刻让你浪费些时间。
LadonGo被杀位置
1.MS17010
2.2021-26855
3.UPX
注释法免杀
1.注释ms17010
2.注释2021-26855
3.exe不要upx加壳
注释MS17010
Ladon.go
//} else if ScanType == "MS17010" { //smb.MS17010(Target,3) |
注释Exchange
//vul.GetExFQND(Target) //} else if ScanType == "CVE-2021-26855" { //vul.CheckCVE_2021_26855(Target) |
注释MS17010后发现,提示杀CVE-2021-26855,所以它也注释掉,注释后再丢进去发现可以正常执行Ladon了
加密免杀
通过注释掉被杀代码,Ladon立马免杀了,但是我们也丢失了功能,对于很多工具免杀也是一样,急用的话可通过删除功能来解决。但是我们需要那个功能怎么办?那必须得做真正的免杀,而不是单纯的删除功能免杀。
} else if ScanType == "MS17010" { //smb.MS17010(Target,3) |
看以上代码只注释smb.MS17010发现还是被defender杀,但是同时注释掉两行它不杀, } else if ScanType == 在注释两行时也存在很多行,说明这个字符串没被杀,很明显是MS17010这个字符串出现在这位置被杀。我们尝试把它改成其它字符串如MS17888,再编译,发现不提示17010被杀了。说明什么问题,显然Defender查杀能力并不是很强,指定位置特征发生改变即免杀,前提你得知道哪被杀,在不确定的情况下,可以一行一行注释,或者用特征码定位EXE被杀位置。等你免杀多了有一定经验了,基本上可以直接确定哪些模块会被杀,大家可以自己看源码,其它探测信息都是正常协议包过去,没有特征定义为恶意,它怎么杀?就算是恶意的,要杀也要先杀高危嘛,所以基本上可一下确定可能被杀的POC模块MS17010、SMBghost、Exchange漏洞等。好了继续改代码
} else if ScanType == "MS17888" { smb.MS17888(Target,3) |
ms17010.go里对应函数也要修改成MS17888,再测试发现此时免杀也可使用MS17010漏洞探测功能。但这样改不好,我们的命令变成Ladon 192.168.1.1/24 MS17888了,时间久了或工具很多谁会记得是对应哪个洞。所以我们应该把字符串MS17010加密,代码如下XXENCODE为自己的加密函数如公开的BASE64或其它加密均可,DFKKJL82为MS17010加密后的密文,这样我们在命令行输入MS17010时,内部对应的还是MS17010探测。
} else if XXENCODE(ScanType) == "DFKKJL82" { smb.MS17888(Target,3) |
加密模块名称免杀后,就可以使用MS17010模块扫描内网了,大功告成。
由于只是简单改几个位置,大家自行修改源码编译一下。
推荐文章